/** @file dji_hms.cpp
 *  @version 4.0.0
 *  @date Dec 2019
 *
 *  @brief HMS((Health Management System) error code table and some basic func for HMS API
 *
 *  @Copyright (c) 2019 DJI
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 *
 */

#include "dji_hms_internal.hpp"

namespace DJI{
namespace OSDK{
void encodeSender(const uint8_t sender,uint8_t & deviceType, uint8_t & deviceIndex)
{
    deviceType = sender & 0x07;
    deviceIndex  = sender >> 5;
}

bool replaceStr(string &str, const string oldReplaceStr, const string newReplaceStr)
{
    uint32_t oldReplaceStrLen = oldReplaceStr.length();
    string::size_type pos;
    pos = str.find(oldReplaceStr);
    if (pos != str.npos)
    {
        str.replace(pos, oldReplaceStrLen, newReplaceStr);
        return true;
    }
    else
    {
        return false;
    }
}

/*! HMS's error code table*/
HMSErrCodeInfo hmsErrCodeInfoTbl[dbHMSErrNum] = {
        { 0x16070035 , "Aircraft D-RTK antenna error" , "" },
        { 0x16070034 , "RTK flight heading inconsistent with other sources" , "" },
        { 0x16070033 , "D-RTK mobile station moved" , "" },
        { 0x16070032 , "D-RTK mobile station detached" , "" },
        { 0x16070031 , "D-RTK mobile station switched signal source" , "" },
        { 0x16070030 , "RTK firmware version does not match" , "" },
        { 0x16070029 , "RTK position data changed slightly when aircraft is stationary" , "" },
        { 0x16070028 , "RTK and GPS positions do not match" , "" },
        { 0x16070027 , "RTK and sensor altitude data inconsistent" , "" },
        { 0x16070026 , "Sudden RTK position data change" , "" },
        { 0x16070025 , "Unable to refresh RTK position data" , "" },
        { 0x16070024 , "RTK data error" , "" },
        { 0x16070023 , "RTK data refresh frequency error" , "" },
        { 0x16070021 , "RTK data error" , "" },
        { 0x16070020 , "RTK data not received by aircraft" , "" },
        { 0x1a010040 , "Downward-left vision sensor connection error (%alarmid)" , "" },
        { 0x1a010041 , "Downward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a010042 , "Forward-left vision sensor connection error (%alarmid)" , "" },
        { 0x1a010043 , "Forward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a010044 , "Backward-left vision sensor connection error (%alarmid)" , "" },
        { 0x1a010045 , "Backward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a010046 , "Upward-left vision sensor connection error (%alarmid)" , "" },
        { 0x1a010047 , "Upward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a010048 , "Left-rear vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a010049 , "Left-front vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a01004a , "Right-front vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a01004b , "Right-rear vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a010080 , "Downward-left vision sensor connection error  (%alarmid)" , "" },
        { 0x1a010081 , "Downward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a010082 , "Forward-left vision sensor connection error  (%alarmid)" , "" },
        { 0x1a010083 , "Forward-right vision sensor connection error  (%alarmid)" , "" },
        { 0x1a010084 , "Backward-left vision sensor connection error  (%alarmid)" , "" },
        { 0x1a010085 , "Backward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a010086 , "Upward-left vision sensor connection error  (%alarmid)" , "" },
        { 0x1a010087 , "Upward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a010088 , "Left-rear vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a010089 , "Left-front vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a01008a , "Right-front vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a01008b , "Right-rear vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a0100c0 , "Downward-left vision sensor connection error  (%alarmid)" , "" },
        { 0x1a0100c1 , "Downward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a0100c2 , "Forward-left vision sensor connection error  (%alarmid)" , "" },
        { 0x1a0100c3 , "Forward-right vision sensor connection error  (%alarmid)" , "" },
        { 0x1a0100c4 , "Backward-left vision sensor connection error  (%alarmid)" , "" },
        { 0x1a0100c5 , "Backward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a0100c6 , "Upward-left vision sensor connection error  (%alarmid)" , "" },
        { 0x1a0100c7 , "Upward-right vision sensor connection error (%alarmid)" , "" },
        { 0x1a0100c8 , "Left-rear vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a0100c9 , "Left-front vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a0100ca , "Right-front vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a0100cb , "Right-rear vision sensor connection error. Fly with caution (%alarmid)" , "" },
        { 0x1a020040 , "Downward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020041 , "Forward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020042 , "Right infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020043 , "Backward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020044 , "Left infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020045 , "Upward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020080 , "Downward Infrared Sensor Connection Error (%alarmid)" , "" },
        { 0x1a020081 , "Forward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020082 , "Right infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020083 , "Backward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020084 , "Left infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020085 , "Upward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a0200c0 , "Downward Infrared Sensor Connection Error (%alarmid)" , "" },
        { 0x1a0200c1 , "Forward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a0200c2 , "Right infrared sensor connection error (%alarmid)" , "" },
        { 0x1a0200c3 , "Backward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a0200c4 , "Left infrared sensor connection error (%alarmid)" , "" },
        { 0x1a0200c5 , "Upward infrared sensor connection error (%alarmid)" , "" },
        { 0x1a020100 , "Downward infrared sensor calibration error (%alarmid)" , "" },
        { 0x1a020101 , "Forward infrared sensor calibration error (%alarmid)" , "" },
        { 0x1a020102 , "Right infrared sensor calibration error (%alarmid)" , "" },
        { 0x1a020103 , "Backward infrared sensor calibration error (%alarmid)" , "" },
        { 0x1a020104 , "Left infrared sensor calibration error (%alarmid)" , "" },
        { 0x1a020105 , "Upward infrared sensor calibration error (%alarmid)" , "" },
        { 0x1a020140 , "Infrared sensors blocked (%alarmid)" , "" },
        { 0x1a310980 , "Vision positioning system error (%alarmid)" , "" },
        { 0x1a310981 , "Vision positioning system error (%alarmid)" , "" },
        { 0x1a420040 , "Downward obstacle sensing system error (%alarmid)" , "" },
        { 0x1a420041 , "Forward obstacle sensing system error (%alarmid)" , "" },
        { 0x1a420042 , "Right obstacle sensing system error (%alarmid)" , "" },
        { 0x1a420043 , "Backward obstacle sensing system error (%alarmid)" , "" },
        { 0x1a420044 , "Left obstacle sensing system error (%alarmid)" , "" },
        { 0x1a420045 , "Upward obstacle sensing system error (%alarmid)" , "" },
        { 0x1a420440 , "Obstacle sensing system error (%alarmid)" , "" },
        { 0x1a4205c0 , "Obstacle sensing system error (%alarmid)" , "" },
        { 0x1a420680 , "Obstacle sensing system error (%alarmid)" , "" },
        { 0x1a510380 , "Downward vision sensor calibration error (%alarmid)" , "" },
        { 0x1a510381 , "Forward vision sensor calibration error (%alarmid)" , "" },
        { 0x1a510382 , "Backward vision sensor calibration error (%alarmid)" , "" },
        { 0x1a510383 , "Upward vision sensor calibration error (%alarmid)" , "" },
        { 0x1a510384 , "Left vision sensor calibration error (%alarmid)" , "" },
        { 0x1a510385 , "Right vision sensor calibration error (%alarmid)" , "" },
        { 0x1a5103c0 , "Vision sensor calibration error (%alarmid)" , "" },
        { 0x11000020 , "Gimbal %component_index payload voltage too high (%alarmid)" , "" },
        { 0x11000021 , "Gimbal %component_index payload voltage too low (%alarmid)" , "" },
        { 0x11000022 , "Gimbal %component_index battery module overheated (%alarmid)" , "" },
        { 0x11000023 , "Gimbal %component_index battery module temperature too low (%alarmid)" , "" },
        { 0x11000024 , "Total payload power too high (%alarmid)" , "" },
        { 0x11000025 , "Gimbal %component_index payload transmission error (%alarmid)" , "" },
        { 0x11000029 , "OSDK voltage too high (%alarmid)" , "" },
        { 0x1100002a , "OSDK voltage too low (%alarmid)" , "" },
        { 0x1100002b , "OSDK battery module overheated (%alarmid)" , "" },
        { 0x1100002c , "OSDK battery module temperature too low (%alarmid)" , "" },
        { 0x1100002d , "Total payload power too high (%alarmid)" , "" },
        { 0x16010001 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010005 , "Sensor system initializing (%alarmid). Wait for initialization to complete" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010007 , "Sensor system error (%alarmid). Land promptly" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x1601000a , "Sensor system initializing (%alarmid). Wait for initialization to complete" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x1601000d , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010010 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010016 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010019 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010041 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010032 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x1601002f , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010013 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x1601001c , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x1601001f , "Sensor system error (%alarmid). Restart aircraft" , "Not Applicable. This string has been deleted" },
        { 0x16010022 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010025 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16010028 , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x1601002b , "Sensor system error (%alarmid). Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x16020001 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16020004 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16020007 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x1602000a , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x1602000d , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16020016 , "IMU bias too large (%alarmid). Calibrate IMU" , "IMU error (%alarmid). Return to home or land" },
        { 0x1602002a , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16020027 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16030004 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16030007 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x1603000d , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16030016 , "IMU bias too large (%alarmid). Calibrate IMU" , "IMU error (%alarmid). Return to home or land" },
        { 0x16030001 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16030013 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x1603000a , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16030010 , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x1603001c , "IMU error (%alarmid). Restart aircraft" , "IMU error (%alarmid). Return to home or land" },
        { 0x16040001 , "Barometer error (%alarmid). Restart aircraft" , "Barometer error (%alarmid). Return to home or land" },
        { 0x16040004 , "Barometer error (%alarmid). Restart aircraft" , "Barometer error (%alarmid). Return to home or land" },
        { 0x16040007 , "Barometer error (%alarmid). Restart aircraft" , "Barometer error (%alarmid). Return to home or land" },
        { 0x1604000a , "Barometer error (%alarmid). Restart aircraft" , "Barometer error (%alarmid). Return to home or land" },
        { 0x16040010 , "Barometer error (%alarmid). Restart aircraft" , "Barometer error (%alarmid). Return to home or land" },
        { 0x16040013 , "Barometer error (%alarmid). Restart aircraft" , "Barometer error (%alarmid). Return to home or land" },
        { 0x16040016 , "Barometer error (%alarmid). Restart aircraft" , "Barometer error (%alarmid). Return to home or land" },
        { 0x16040019 , "Barometer error (%alarmid). Restart aircraft" , "Barometer error (%alarmid). Return to home or land" },
        { 0x16050019 , "GPS error (%alarmid). Restart aircraft" , "GPS error (%alarmid). Return to home or land" },
        { 0x16050001 , "GPS error (%alarmid). Restart aircraft" , "GPS error (%alarmid). Return to home or land" },
        { 0x16050004 , "GPS error (%alarmid). Restart aircraft" , "GPS error (%alarmid). Return to home or land" },
        { 0x1605001c , "GPS error (%alarmid). Restart aircraft" , "GPS error (%alarmid). Return to home or land" },
        { 0x16060001 , "Compass error (%alarmid). Restart aircraft" , "Compass error (%alarmid). Return to home or land" },
        { 0x16060007 , "Compass error (%alarmid). Restart aircraft" , "Compass error (%alarmid). Return to home or land" },
        { 0x1606000a , "Compass error (%alarmid). Restart aircraft" , "Compass error (%alarmid). Return to home or land" },
        { 0x1606000d , "Compass interference (%alarmid). Calibrate compass" , "Compass interference (%alarmid). Move aircraft away from interference source" },
        { 0x16060010 , "Compass interference (%alarmid). Calibrate compass" , "Compass interference (%alarmid). Move aircraft away from interference source" },
        { 0x16100001 , "Compass error (%alarmid). Unable to take off. Restart aircraft" , "Not Applicable. This string has been deleted" },
        { 0x16100002 , "DJI Assistant connected. Unable to take off. Disconnect before taking off (%alarmid)" , "DJI Assistant connected. Disconnect before taking off (%alarmid)" },
        { 0x16100003 , "Aircraft not activated or firmware out-of-date. Unable to take off. Activate aircraft or update to latest firmware version (%alarmid)" , "Device activation or firmware update required (%alarmid)" },
        { 0x16100006 , "Invalid IMU serial number (%alarmid). Unable to take off. Maintenance required" , "Invalid IMU serial number (%alarmid). Return to home or land" },
        { 0x16100008 , "Compass calibrating. Unable to take off. Wait for calibration to complete before taking off(%alarmid)" , "Compass calibrating. Wait for calibration to complete before taking off (%alarmid)" },
        { 0x16100009 , "Sensor system initializing (%alarmid). Unable to take off. Wait for initialization to complete before taking off" , "Sensor system initializing (%alarmid). Return to home or land" },
        { 0x1610000a , "Aircraft in Beginner mode. Unable to take off. Take off in an open outdoor area when in Beginner mode (%alarmid)" , "Beginner mode enabled. When using Beginner mode, take off in an open, outdoor area (%alarmid)" },
        { 0x1610000b , "Battery cell error (%alarmid). Unable to take off. Contact DJI Support" , "Battery cell error (%alarmid). Return to home or land" },
        { 0x1610000c , "Battery communication error (%alarmid). Unable to take off. Reinstall battery" , "Battery communication error (%alarmid). Return to home" },
        { 0x1610000d , "Critical low battery voltage (%alarmid). Unable to take off. Charge promptly" , "Critical low battery voltage (%alarmid). Return to home or land promptly" },
        { 0x1610000e , "Critical low battery (%alarmid). Unable to take off. Charge promptly" , "Critical low battery (%alarmid). Return to home or land promptly" },
        { 0x1610000f , "Critical low battery voltage (%alarmid). Unable to take off. Charge promptly" , "Critical low battery voltage (%alarmid). Return to home or land promptly" },
        { 0x16100010 , "Battery output power insufficient (%alarmid). Unable to take off. Charge promptly" , "Battery power output insufficient (%alarmid). Return to home or land" },
        { 0x16100011 , "Critical low battery (%alarmid). Unable to take off. Charge promptly" , "Critical low battery (%alarmid). Return to home or land promptly" },
        { 0x16100012 , "Battery initializing (%alarmid). Unable to take off. Wait for initialization to complete before taking off" , "Battery initialization error (%alarmid). Return to home or land" },
        { 0x16100013 , "Running Flight Simulator. Unable to take off. Restart aircraft before taking off (%alarmid)" , "Running Flight Simulator. Restart aircraft before taking off (%alarmid)" },
        { 0x16100015 , "Aircraft pitch angle too large. Unable to take off. Ensure aircraft is level before taking off (%alarmid)" , "Aircraft pitch angle too large. Ensure aircraft is level before taking off (%alarmid)" },
        { 0x16100016 , "Aircraft not activated. Unable to take off. Restart DJI Pilot and activate aircraft (%alarmid)" , "Aircraft not activated. Restart DJI Pilot and activate aircraft (%alarmid)" },
        { 0x16100017 , "Aircraft in GEO Zone. Unable to take off. Check map to find Recommended Zones (%alarmid)" , "Aircraft in GEO Zone. Check map to find Recommended Zones (%alarmid)" },
        { 0x16100018 , "IMU error (%alarmid). Unable to take off. Calibrate IMU" , "IMU initialization error (%alarmid). Return to home or land" },
        { 0x16100019 , "ESC error (%alarmid). Unable to take off. Contact DJI Support" , "ESC error (%alarmid). Land immediately" },
        { 0x1610001a , "Sensor system initializing (%alarmid). Unable to take off. Wait for initialization to complete before taking off" , "Sensor system initializing (%alarmid). Return to home or land" },
        { 0x1610001b , "System updating (%alarmid). Unable to take off. Wait for update to complete" , "System updating. Wait for update to complete before taking off (%alarmid)" },
        { 0x1610001c , "Running Flight Simulator (%alarmid). Unable to take off. Restart aircraft before taking off" , "Running Flight Simulator (%alarmid). Restart aircraft before taking off" },
        { 0x1610001d , "IMU calibrating (%alarmid). Unable to take off. Wait for calibration to complete before takeoff" , "Calibrating IMU (%alarmid). Wait for calibration to complete before taking off" },
        { 0x1610001e , "Aircraft pitch angle too large. Unable to take off. Ensure aircraft is level before taking off (%alarmid)" , "Aircraft pitch angle too large. Ensure aircraft is level before taking off (%alarmid)" },
        { 0x16100029 , "Invalid aircraft serial number. Unable to take off. Contact your local dealer or DJI Support (%alarmid)" , "Invalid aircraft serial number (%alarmid). Return to home or land" },
        { 0x1610002d , "GPS disconnected (%alarmid). Unable to take off. Restart aircraft" , "GPS disconnected (%alarmid). Return to home or land" },
        { 0x1610002f , "Data recorder error (%alarmid). Unable to take off. Restart aircraft" , "Data recorder error (%alarmid). Return to home or land" },
        { 0x16100030 , "Aircraft model and firmware version do not match (%alarmid). Unable to take off. Contact your local dealer or DJI Support." , "Aircraft model and firmware version do not match (%alarmid). Return to home or land" },
        { 0x1610003d , "Sensor system disconnected (%alarmid). Unable to take off. Restart aircraft" , "Sensor system disconnected (%alarmid). Return to home or land" },
        { 0x1610004a , "Sensor system error (%alarmid). Unable to take off. Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x1610004b , "Sensor system error (%alarmid). Unable to take off. Restart aircraft" , "Sensor system error (%alarmid). Return to home or land" },
        { 0x1610004d , "Flight controller data error. Unable to take off. Restart aircraft (%alarmid)" , "Flight controller data error (%alarmid). Return to home or land" },
        { 0x1610004e , "Not enough batteries installed. Unable to take off. Insert two batteries before taking off (%alarmid)" , "Insufficient batteries. Install two batteries before taking off (%alarmid)" },
        { 0x1610004f , "Battery authentication failed. Unable to take off. Replace with DJI battery (%alarmid)" , "Battery authentication failed. Replace with standard DJI battery (%alarmid)" },
        { 0x16100051 , "Large voltage difference between batteries. Unable to take off. Change to batteries with similar remaining batter level and try again (%alarmid)" , "Large voltage difference between batteries. Return to home or land. Replace batteries with new ones of a similar capacity and try again (%alarmid)" },
        { 0x16100053 , "Aircraft module firmware versions do not match. Unable to take off. Update to latest firmware versions (%alarmid)." , "Aircraft module firmware versions do not match. Update to latest firmware versions (%alarmid)" },
        { 0x16100054 , "Gimbal error (%alarmid). Unable to take off. Contact DJI Support" , "Gimbal error (%alarmid). Return to home or land" },
        { 0x16100055 , "Gimbal error (%alarmid). Unable to take off. Contact DJI Support" , "Gimbal error (%alarmid). Return to home or land" },
        { 0x16100056 , "Gimbal error (%alarmid). Unable to take off. Contact DJI Support" , "Gimbal error (%alarmid). Return to home or land" },
        { 0x16100057 , "Gimbal error (%alarmid). Unable to take off. Contact DJI Support" , "Gimbal error (%alarmid). Return to home or land" },
        { 0x16100058 , "Gimbal firmware updating. Unable to take off (%alarmid)..." , "Gimbal firmware update in progress (%alarmid)" },
        { 0x1610005d , "IMU calibration successful. Unable to take off. Restarting aircraft required (%alarmid)" , "IMU calibration error. Return to home or land (%alarmid)" },
        { 0x1610005e , "Aircraft rolled during takeoff. Takeoff failed. Check whether propellers were installed correctly (%alarmid)" , "Aircraft rolled during takeoff. Check whether propellers are installed correctly (%alarmid)" },
        { 0x1610005f , "Motor stalled. Unable to take off. Power off aircraft and check whether motor can rotate freely (%alarmid)" , "Motor stalled. Land promptly. Power off airfcraft and check whether motor can rotate freely (%alarmid)" },
        { 0x16100060 , "Motor rotation speed error. Unable to take off. Restart aircraft (%alarmid)" , "Motor rotation speed error. Land and restart aircraft (%alarmid)" },
        { 0x16100061 , "Motor idle. Unable to take off. Check whether propellers are detached or installed incorrectly (%alarmid)" , "Motor idle. Unable to take off. Check whether propellers are detached or installed incorrectly (%alarmid)" },
        { 0x16100062 , "Unable to turn on motor. Unable to take off. Check aircraft status and restart (%alarmid)" , "Unable to turn on aircraft motor(s). Check aircraft status and restart (%alarmid)" },
        { 0x16100063 , "Auto Takeoff failed (%alarmid)" , "Auto Takeoff failed (%alarmid)" },
        { 0x16100064 , "Aircraft rolled over (%alarmid). Unable to take off. Restart aircraft and ensure it is level before taking off" , "Aircraft rolled over (%alarmid). Return to home or land" },
        { 0x16100065 , "Battery firmware version error. Unable to take off. Replace battery or update battery firmware to latest version (%alarmid)" , "Battery firmware version error. Replace battery or update to the latest firmware version (%alarmid)" },
        { 0x16100066 , "RTK signal weak. Unable to take off. Move to an open area for takeoff or turn off RTK (%alarmid)" , "RTK signal weak. Move to an open area for takeoff or turn off RTK (%alarmid)" },
        { 0x16100067 , "Compass interference (%alarmid). Unable to take off. Calibrate compass" , "Compass interference (%alarmid). Move away from interference source" },
        { 0x16100068 , "ESC short-circuited. Unable to take off. Restart aircraft (%alarmid)" , "ESC short-circuited. Restart aircraft (%alarmid)" },
        { 0x16100069 , "ESC auto-check error. Unable to take off. Restart aircraft (%alarmid)" , "ESC auto-check error. Return to home or land (%alarmid)" },
        { 0x16100071 , "GPS error (%alarmid). Unable to take off. Restart aircraft" , "GPS error (%alarmid). Return to home or land" },
        { 0x16100072 , "Gimbal calibrating (%alarmid). Unable to take off" , "Gimbal calibration error. Return to home or land (%alarmid)" },
        { 0x16100073 , "Takeoff conditions not met. Unable to take off. Firmware out-of-date or flight route uploading to aircraft (%alarmid)" , "Firmware out of date or flight route uploading to aircraft. Return to home or land (%alarmid)" },
        { 0x16100074 , "Takeoff altitude error. Unable to take off. Restart aircraft (%alarmid)" , "Takeoff altitude error. Restart aircraft (%alarmid)" },
        { 0x16100075 , "ESC firmware versions do not match. Unable to take off. Update to latest firmware version (%alarmid)" , "ESC firmware versions do not match. Update to latest firmware versions (%alarmid)" },
        { 0x16100076 , "IMU error (%alarmid). Unable to take off. Contact DJI Support" , "IMU error (%alarmid). Return to home or land" },
        { 0x16100078 , "Compass error. Unable to take off. Contact DJI Support (%alarmid)" , "Compass error. Return to home or land (%alarmid)" },
        { 0x1610007a , "ESC beeping. Unable to take off. Restart aircraft before taking off (%alarmid)" , "ESC beeping. Return to home or land (%alarmid)" },
        { 0x1610007b , "ESC overheated. Unable to take off. Power off aircraft and wait for temperature to return to normal (%alarmid)" , "ESC overheated. Land promptly. Power off aircraft and wait for temperature to return to normal (%alarmid)" },
        { 0x1610007d , "Impact detected. Takeoff failed and aircraft landed. Restart aircraft (%alarmid)" , "Impact detected. Aircraft landed. Restart aircraft (%alarmid)" },
        { 0x1610007f , "Impact detected. Unable to take off. Restart aircraft (%alarmid)" , "Impact detected. Return to home or land (%alarmid)" },
        { 0x16100080 , "Aircraft altitude control error. Unable to take off. Restart aircraft (%alarmid)" , "Aircraft altitude control error. RTH or land (%alarmid)" },
        { 0x16100081 , "Battery firmware out-of-date. Unable to take off. Update to latest firmware version (%alarmid)" , "Battery firmware version out of date. Return to home or land. Update to latest firmware version (%alarmid)" },
        { 0x16100082 , "Large voltage different between battery cells. Unable to take off. Battery maintenance required (%alarmid)" , "Large difference in battery cell voltage detected. Return to home or land. Battery maintenance required (%alarmid)" },
        { 0x16100083 , "Battery installed incorrectly. Unable to take off. Turn battery locker to its limit and ensure both batteries are installed correctly (%alarmid)" , "Battery installed incorrectly. Return to home or land. Turn battery locker to its limit and ensure both batteries are installed correctly (%alarmid)" },
        { 0x16100084 , "Fan error. Unable to take off. Check whether fan is stalled and making strange noises (%alarmid)" , "Fan error. Return to home or land. Check whether fan is stalled or making strange noises (%alarmid)" },
        { 0x16100085 , "Aircraft overheated. Unable to take off. Power off aircraft and wait for temperature to return to normal (%alarmid)" , "Aircraft overheated. Return to home or land. Power off aircraft and wait for temperature to return to normal (%alarmid)" },
        { 0x16100087 , "Emergency Propeller Stop triggered (%alarmid). Unable to take off" , "Emergency Propeller Stop triggered (%alarmid)" },
        { 0x16100088 , "Takeoff failed. Control sticks not centered. Ensure control sticks are centered (%alarmid)" , "Takeoff failed. Control sticks not centered. Ensure control sticks are centered (%alarmid)" },
        { 0x16100089 , "Security code verification failed. Unable to take off. Re-enter code (%alarmid)" , "Security code verification failed. Unable to take off. Re-enter verification code (%alarmid)" },
        { 0x1610008a , "Flight controller unit error (%alarmid). Unable to take off. Restart aircraft" , "Flight controller unit error (%alarmid). Return to home or land" },
        { 0x1610008f , "Aircraft antenna satellite signal searching error. Unable to take off. Move to an open area for takeoff (%alarmid)" , "Aircraft antenna satellite signal searching error. Fly with caution (%alarmid)" },
        { 0x16100091 , "Flight prohibited in current area (%alarmid). Unable to take off" , "Flying prohibited in current area (%alarmid). Return to home or land" },
        { 0x16100092 , "Battery capacity error. Unable to take off. Battery maintenance required (%alarmid)" , "Battery capacity error. Return to home or land. Battery maintenance required (%alarmid)" },
        { 0x16100099 , "Gimbal starting error. Unable to take off. Check whether gimbal can rotate freely and restart aircraft (%alarmid)" , "Gimbal startup error. Return to home or land. Check whether gimbal can rotate freely and restart aircraft (%alarmid)" },
        { 0x1610009a , "Excessive gimbal vibration. Unable to take off. Check whether gimbal can rotate freely or is damaged. Restart aircraft (%alarmid)" , "Excessive gimbal vibration. Return to home or land. Check whether gimbal can rotate freely or is damaged. Restart aircraft (%alarmid)" },
        { 0x1610009f , "Flight controller unit error (%alarmid). Unable to take off. Restart aircraft" , "Flight controller unit error (%alarmid). Return to home or land" },
        { 0x161000c8 , "Unable to take off. Check whether aircraft is connected to DJI Assistant or system is updating (%alarmid)" , "Check whether aircraft is connected to DJI Assistant or system is updating (%alarmid)" },
        { 0x161000c9 , "Unable to take off. Check whether aircraft is connected to DJI Assistant or system is updating (%alarmid)" , "Check whether aircraft is connected to DJI Assistant or system is updating (%alarmid)" },
        { 0x1c000001 , "Camera %component_index overheated (%alarmid). Wait for temperature to return to normal before use" , "" },
        { 0x1c100001 , "Camera %component_index overheated (%alarmid). Wait for temperature to return to normal before use" , "" },
        { 0x1c200001 , "Camera %component_index overheated (%alarmid). Wait for temperature to return to normal before use" , "" },
        { 0x1c001001 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c001002 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c001003 , "Camera chip overheated (%alarmid). Power off aircraft and wait for temperature to return to normal before use" , "Camera processor overheated (%alarmid). Return to home or land promptly. Wait for temperature to return to normal before use" },
        { 0x1c001004 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c001005 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c001006 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c001007 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c001008 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c001009 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c00100a , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c00100b , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c101001 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c101002 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c101003 , "Camera chip overheated (%alarmid). Power off aircraft and wait for temperature to return to normal before use" , "Camera processor overheated (%alarmid). Return to home or land promptly. Wait for temperature to return to normal before use" },
        { 0x1c101004 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c101005 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c101006 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c101007 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c101008 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c101009 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c10100a , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c10100b , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c201001 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c201002 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c201003 , "Camera chip overheated (%alarmid). Power off aircraft and wait for temperature to return to normal before use" , "Camera processor overheated (%alarmid). Return to home or land promptly. Wait for temperature to return to normal before use" },
        { 0x1c201004 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c201005 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c201006 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c201007 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c201008 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c201009 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c20100a , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c20100b , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c002001 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c002002 , "Camera %component_index error (%alarmid). Restart camera" , "" },
        { 0x1c002003 , "Camera chip overheated (%alarmid). Power off aircraft and wait for temperature to return to normal before use" , "Camera processor overheated (%alarmid). Return to home or land promptly. Wait for temperature to return to normal before use" },
        { 0x1c002004 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c002005 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c002006 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c002007 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c002008 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c002009 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c102001 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c102002 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c102003 , "Camera chip overheated (%alarmid). Power off aircraft and wait for temperature to return to normal before use" , "Camera processor overheated (%alarmid). Return to home or land promptly. Wait for temperature to return to normal before use" },
        { 0x1c102004 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c102005 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c102006 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c102007 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c102008 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c102009 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c202001 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c202002 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c202003 , "Camera chip overheated (%alarmid). Power off aircraft and wait for temperature to return to normal before use" , "Camera processor overheated (%alarmid). Return to home or land promptly. Wait for temperature to return to normal before use" },
        { 0x1c202004 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c202005 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c202006 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c202007 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c202008 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c202009 , "H20 camera image transmission sensor processor error (%alarmid)" , "" },
        { 0x1c003001 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c003002 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c003003 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c003004 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c103001 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c103002 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c103003 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c103004 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c203001 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c203002 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c203003 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c203004 , "H20 camera lens error. Restart camera (%alarmid)" , "" },
        { 0x1c004001 , "Invalid SD card. Replace SD card" , "" },
        { 0x1c004002 , "SD card speed low. Replace with faster SD card" , "" },
        { 0x1c004003 , "SD card error. Change card" , "" },
        { 0x1c004004 , "No SD card" , "" },
        { 0x1c104001 , "Invalid SD card. Replace SD card" , "" },
        { 0x1c104002 , "SD card speed low. Replace with faster SD card" , "" },
        { 0x1c104003 , "SD card error. Change card" , "" },
        { 0x1c104004 , "No SD card" , "" },
        { 0x1c204001 , "Invalid SD card. Replace SD card" , "" },
        { 0x1c204002 , "SD card speed low. Replace with faster SD card" , "" },
        { 0x1c204003 , "SD card error. Change card" , "" },
        { 0x1c204004 , "No SD card" , "" },
        { 0x1d010001 , "Gimbal stuck (%alarmid)" , "" },
        { 0x1d010002 , "Gimbal auto-check failed (%alarmid)" , "" },
        { 0x1d010003 , "Gimbal motor overloaded (%alarmid)" , "" },
        { 0x1d020001 , "Gimbal calibration error (%alarmid)" , "" },
        { 0x1d030001 , "Gimbal unable to retrieve aircraft data (%alarmid)" , "" },
        { 0x1d040001 , "Excessive gimbal vibration (%alarmid)" , "" },
        { 0x1d040002 , "Gimbal sensor error (%alarmid)" , "" },
        { 0x1d040004 , "Gimbal ESC malfunctioned (%alarmid)" , "" },
        { 0x1d040003 , "Gimbal ESC malfunctioned (%alarmid)" , "" },
        { 0x1d040005 , "Gimbal ESC malfunctioned (%alarmid)" , "" },
        { 0x1d050003 , "Gimbal %component_index pan axis endpoint reached" , "" },
        { 0x1d050002 , "Gimbal %component_index pitch axis endpoint reached" , "" },
        { 0x1d050001 , "Gimbal %component_index roll axis endpoint reached" , "" },
        { 0x110b0001 , "Battery %index overcurrent. Check for heavy payload and reduce excessive motion during flight (%alarmid)" , "" },
        { 0x110b0002 , "Battery %index overheated. Return to home promptly and wait for battery temperature to return to normal before use (%alarmid)" , "" },
        { 0x110b0003 , "Battery %index temperature too low. Warm up battery to 5°C or higher (%alarmid)" , "" },
        { 0x110b0006 , "Battery %index cell damaged. Stop using this battery and contact DJI Support (%alarmid)" , "" },
        { 0x110b0011 , "Battery %index data communication error. Reinstall battery. If the issue persists, replace battery (%alarmid)" , "" },
        { 0x110b0004 , "Battery %index short-circuited during discharge. Replace battery (%alarmid)" , "" },
        { 0x110b0005 , "Battery %index cell voltage low. Replace battery (%alarmid)" , "" },
        { 0x110b0012 , "Battery %index requires maintenance (%alarmid)" , "" },
        { 0x110b0015 , "Battery %index requires maintenance to ensure flight safety (%alarmid)" , "" },
        { 0x110b0016 , "Battery %index requires maintenance to ensure flight safety (%alarmid)" , "" },
        { 0x110b0017 , "Battery %index requires maintenance to ensure flight safety (%alarmid)" , "" },
        { 0x110b0018 , "Battery %index requires maintenance to ensure flight safety (%alarmid)" , "" },
        { 0x110b0019 , "Battery %index requires maintenance to ensure flight safety (%alarmid)" , "" },
        { 0x110b001a , "Battery %index requires maintenance to ensure flight safety (%alarmid)" , "" },
        { 0x110b001b , "Battery %index requires maintenance to ensure flight safety (%alarmid)" , "" },
        { 0x110b0007 , "Battery %index damaged. Stop using this battery and contact DJI Support (%alarmid)" , "" },
        { 0x110b0008 , "Battery %index damaged. Stop using this battery and contact DJI Support (%alarmid)" , "" },
        { 0x110b0009 , "Battery %index damaged. Stop using this battery and contact DJI Support (%alarmid)" , "" },
        { 0x110b000a , "Battery %index damaged. Stop using this battery and contact DJI Support (%alarmid)" , "" },
        { 0x110b000b , "Battery %index damaged. Stop using this battery and contact DJI Support (%alarmid)" , "" },
        { 0x110b000c , "Battery %index damaged. Stop using this battery and contact DJI Support (%alarmid)" , "" },
        { 0x110b000d , "Battery %index damaged. Stop using this battery and contact DJI Support (%alarmid)" , "" },
        { 0x110b000f , "Battery %index capacity significantly decreased. Continuing use poses serious safety risks (%alarmid)" , "" },
        { 0x110b0010 , "Safety requirements not met. Dispose of Battery %index properly (%alarmid)" , "" },
        { 0x110b0013 , "Battery slot %index empty. Insert or replace battery (%alarmid)" , "" },
        { 0x110b001c , "Battery slot %index empty. Insert or replace battery (%alarmid)" , "" },
        { 0x110b0014 , "Battery %index auto-heating (%alarmid)" , "" },
        { 0x110b000e , "Battery %index self-discharged during storage" , "" },
        { 0x16080020 , "Motor %index stalled (%alarmid). Land aircraft immediately" , "" },
        { 0x16080021 , "ESC %index short-circuited (%alarmid). Land immediately and restart aircraft" , "" },
        { 0x16080022 , "ESC %index overloaded (%alarmid). Land aircraft immediately" , "" },
        { 0x16080023 , "Motor %index communication error (%alarmid). Land immediately and restart aircraft" , "" },
        { 0x16080024 , "Motor %index over-accelerating. Stop pressing control stick (%alarmid)" , "" },
        { 0x16080025 , "Motor %index communication error (%alarmid)" , "" },
        { 0x16080026 , "Motor %index communication error (%alarmid)" , "" },
        { 0x16080027 , "Motor %index communication error (%alarmid)" , "" },
        { 0x16080028 , "Motor %index communication error (%alarmid)" , "" },
        { 0x16080029 , "Motor %index propeller detached or installed incorrectly (%alarmid)" , "" },
        { 0x1608002a , "ESC %index overheated (%alarmid)" , "" },
        { 0x1608002b , "ESC %index overheated (%alarmid)" , "" },
        { 0x1608002c , "ESC %index voltage too high (%alarmid)" , "" },
        { 0x1608002d , "ESC %index voltage too low (%alarmid)" , "" },
        { 0x1608002e , "ESC %index flash memory error (%alarmid)" , "" },
        { 0x1608002f , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080030 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080031 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080032 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080033 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080034 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080035 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080036 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080037 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080038 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080039 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608003a , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608003b , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608003c , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608003d , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608003e , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608003f , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080040 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080041 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080042 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080043 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080044 , "ESC %index voltage too low (%alarmid)" , "" },
        { 0x16080045 , "ESC %index voltage too high (%alarmid)" , "" },
        { 0x16080046 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080047 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080048 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x16080049 , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608004a , "ESC %index overheated (%alarmid)" , "" },
        { 0x1608004b , "ESC %index temperature too low (%alarmid)" , "" },
        { 0x1608004c , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608004d , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608004e , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1608004f , "ESC %index auto-check error (%alarmid)" , "" },
        { 0x1e000001 , "Payload %component_index startup error (%alarmid)" , "" },
        { 0x1e000002 , "Payload %component_index communication error (%alarmid)" , "" },
        { 0x1e000003 , "Payload %component_index overheated (%alarmid)" , "" },
        { 0x1e000004 , "Payload %component_index hardware error (%alarmid)" , "" },
        { 0x1b010001 , "Navigation system error (%alarmid). Restart aircraft" , "" },
        { 0x1b010002 , "Target Acquisition unavailable with current payload (%alarmid)" , "" },
        { 0x1b010003 , "Camera mode error. Target Acquisition unavailable (%alarmid)" , "" },
        { 0x1b010004 , "Target too close (%alarmid)" , "" },
        { 0x1b010005 , "Target lost. Target Acquisition paused (%alarmid)" , "" },
        { 0x1b010006 , "Target Acquisition paused (%alarmid)" , "" },
        { 0x1b010007 , "Target Acquisition paused (%alarmid). Switch to P mode" , "" },
        { 0x1b010008 , "Enabling Target Acquisition failed (%alarmid)" , "" },
        { 0x1b010009 , "Obstacle detected. Circling stopped. Manually control aircraft to avoid obstacle (%alarmid)" , "" },
        { 0x1b01000a , "GEO Zone nearby. Circling stopped. Manually control aircraft to avoid GEO Zone (%alarmid)" , "" },
        { 0x1b01000b , "Target Acquisition paused (%alarmid)" , "" },
        { 0x1b01000c , "Target moving too fast. Circling stopped (%alarmid)" , "" },
        { 0x1b010401 , "Camera data sending error. Target Acquisition paused. Restart camera (%alarmid)" , "" },
        { 0x1b010402 , "Camera data sending error. Target Acquisition paused. Restart camera (%alarmid)" , "" },
        { 0x1b010403 , "Camera data sending error. Target Acquisition paused. Restart camera (%alarmid)" , "" },
        { 0x1b010404 , "Camera data sending error. Target Acquisition paused. Restart camera (%alarmid)" , "" },
        { 0x1b010405 , "Camera data sending error. Target Acquisition paused. Restart camera (%alarmid)" , "" },
        { 0x1b010406 , "Camera data sending error. Target Acquisition paused. Restart camera (%alarmid)" , "" },
        { 0x1b010407 , "Camera data sending error. Target Acquisition paused. Restart camera (%alarmid)" , "" },
        { 0x1b010408 , "Camera data sending error. Target Acquisition paused. Restart camera (%alarmid)" , "" },
        { 0x1b010801 , "DJI Pilot error. Target Acquisition paused. Restart DJI Pilot (%alarmid)" , "" },
        { 0x1b010802 , "DJI Pilot error. Target Acquisition paused. Restart DJI Pilot (%alarmid)" , "" },
        { 0x1b010803 , "DJI Pilot error. Target Acquisition paused. Restart DJI Pilot (%alarmid)" , "" },
        { 0x1b010c01 , "Flight Controller data sending error. Target Acquisition paused. Restart aircraft (%alarmid)" , "" },
        { 0x1b010c02 , "Flight Controller data sending error. Target Acquisition paused. Restart aircraft (%alarmid)" , "" },
        { 0x1b010c03 , "Flight Controller data sending error. Target Acquisition paused. Restart aircraft (%alarmid)" , "" },
        { 0x1b011001 , "Gimbal data sending error. Target Acquisition paused. Reinstall payload (%alarmid)" , "" },
        { 0x1b011002 , "Gimbal data sending error. Target Acquisition paused. Reinstall payload (%alarmid)" , "" },
        { 0x1b011003 , "Gimbal data sending error. Target Acquisition paused. Reinstall payload (%alarmid)" , "" },
        { 0x1b011801 , "Remote controller data sending error. Target Acquisition stopped. Restart RC (%alarmid)" , "" },
        { 0x1b011802 , "Remote controller data sending error. Target Acquisition paused. Check connection between RC and aircraft (%alarmid)" , "" },
        { 0x1b030001 , "Obstacle detected. RTH stopped. Manually control aircraft to avoid obstacle (%alarmid)" , "" },
        { 0x1b030002 , "GEO Zone nearby. RTH stopped. Manually control aircraft to avoid GEO Zone (%alarmid)" , "" },
        { 0x1b030003 , "RTH error. Fly aircraft manually (%alarmid)" , "" },
        { 0x1b030004 , "Remote controller disconnected. Failsafe RTH in progress (%alarmid)" , "" },
        { 0x1b030005 , "Enabling RTH Obstacle Check failed. Control aircraft to return to home manually (%alarmid)" , "" },
        { 0x1b030c02 , "GPS signal weak. RTH accuracy affected. Manual RTH recommended (%alarmid)" , "" },
        { 0x1b033001 , "RTH Obstacle Check error. Control aircraft to return to home manually (%alarmid)" , "" },
        { 0x1b040001 , "Focused shooting unavailable with current payload (%alarmid)" , "" },
        { 0x1b040002 , "Focused shooting failed (%alarmid). Switched to normal shooting mode" , "" },
        { 0x1b040003 , "Focused shooting failed (%alarmid). Switched to normal shooting mode" , "" },
        { 0x1b040004 , "Camera not mounted. Focused shooting failed (%alarmid)" , "" },
        { 0x1b040401 , "Camera error. Focused shooting failed. Restart camera (%alarmid)" , "" },
        { 0x1b040402 , "Camera error. Focused shooting failed. Restart camera (%alarmid)" , "" },
        { 0x1b040403 , "Camera error. Focused shooting failed. Restart camera (%alarmid)" , "" },
        { 0x1b040801 , "Unable to locate focused shooting sample. Reupload flight route (%alarmid)" , "" },
        { 0x1b040802 , "Target box parameter error. Readjust target box (%alarmid)" , "" },
        { 0x1b041001 , "Gimbal error. Focused shooting failed. Reinstall payload (%alarmid)" , "" },
        { 0x1b090001 , "Target tracking stopped" , "" },
        { 0x1b090002 , "Target tracking stopped" , "" },
        { 0x1b090003 , "Target tracking stopped" , "" },
        { 0x1b092c01 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c02 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c03 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c04 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c05 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c06 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c07 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c08 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c09 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c0a , "Target identification error (%alarmid)" , "" },
        { 0x1b092c0b , "Target identification error (%alarmid)" , "" },
        { 0x1b092c0c , "Target identification error (%alarmid)" , "" },
        { 0x1b092c0d , "Target identification error (%alarmid)" , "" },
        { 0x1b092c0e , "Target identification error (%alarmid)" , "" },
        { 0x1b092c0f , "Target identification error (%alarmid)" , "" },
        { 0x1b092c10 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c11 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c12 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c13 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c14 , "Target identification error (%alarmid)" , "" },
        { 0x1b092c15 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c16 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c17 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c18 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c19 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c1a , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c1b , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c1c , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c1d , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c1e , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c1f , "Enabling Target Acquisition failed (%alarmid). Ensure selected target is valid" , "" },
        { 0x1b092c20 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b092c21 , "Enabling Target Acquisition failed (%alarmid). Reduce selected area" , "" },
        { 0x1b092c22 , "Enabling Target Acquisition failed (%alarmid). Increase selected area" , "" },
        { 0x1b092c23 , "Enabling Target Acquisition failed (%alarmid). Ensure selected target is valid" , "" },
        { 0x1b092c24 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093001 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093002 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093003 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093004 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093005 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093006 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093007 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093008 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093009 , "Enabling Target Acquisition failed (%alarmid). Increase selected area" , "" },
        { 0x1b09300a , "Enabling Target Acquisition failed (%alarmid). Ensure selected target is valid" , "" },
        { 0x1b09300b , "Target lost. Exited Target Acquisition (%alarmid)" , "" },
        { 0x1b09300c , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b09300d , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b09300e , "Camera parameters changed. Exited Target Acquisition (%alarmid)" , "" },
        { 0x1b09300f , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093010 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093011 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093012 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093013 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093014 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093015 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093016 , "Target lost. Exited Target Acquisition (%alarmid)" , "" },
        { 0x1b093017 , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b093018 , "Target too far away. Exited Target Acquisition (%alarmid)" , "" },
        { 0x1b093019 , "Camera parameters changed. Exited Target Acquisition (%alarmid)" , "" },
        { 0x1b09301a , "Enabling Target Acquisition failed (%alarmid). Check and try again" , "" },
        { 0x1b01000d , "Unusual target movement. Drag-select target again (%alarmid)" , "" },
        { 0x1b01000e , "GPS signal weak and vision positioning unavailable. Aircraft switched to A mode. Control aircraft manually (%alarmid)" , "" },
        { 0x1f0b0001 , "Aircraft unable to use LTE Transmission. Ensure SIM card data plan is available for use (%alarmid)" , "" },
        { 0x1f0b0002 , "Remote controller unable to use LTE Transmission. Ensure SIM card data plan is available for use (%alarmid)" , "" },
        { 0x1f0b0003 , "LTE Transmission error. Restart aircraft and remote controller (%alarmid)" , "" },
        { 0x1f0b0004 , "LTE Transmission error. Restart aircraft and remote controller (%alarmid)" , "" },
        { 0x1f0b0005 , "LTE Transmission error. Ensure remote controller and aircraft are linked (%alarmid)" , "" },
        { 0x1f0b0006 , "LTE Transmission error. Switched to OcuSync. Restart aircraft and remote controller to re-establish LTE Transmission (%alarmid)" , "" },
        { 0x1f0b0007 , "LTE Transmission error. Switched to OcuSync. Restart aircraft and remote controller to re-establish LTE Transmission (%alarmid)" , "" },
        { 0x1f0b0008 , "LTE Transmission error. Switched to OcuSync. Restart aircraft and remote controller to re-establish LTE Transmission (%alarmid)" , "" },
        { 0x1f0b0009 , "LTE Transmission error. Switched to OcuSync. Restart aircraft and remote controller to re-establish LTE Transmission (%alarmid)" , "" },
        { 0x1f0b001a , "LTE Transmission error. Switched to OcuSync. Restart aircraft and remote controller to re-establish LTE Transmission (%alarmid)" , "" },
        { 0x1f0b001b , "LTE Transmission error. Switched to OcuSync. Restart aircraft and remote controller to re-establish LTE Transmission (%alarmid)" , "" },
};
  }
}